#include <iostream>
#include <signal.h>
#include <unistd.h>

using namespace std;

void work()
{
    cout << "print log..." << endl;
}

void handler(int signo)
{
    // work();
    cout << "get a signo: " << signo << endl;
    // exit(1);
    int n = alarm(5);
    cout << "剩余时间：" << n << endl;
}

int main()
{
    signal(SIGALRM, handler);
    int n = alarm(50);

    while (1)
    {
        cout << "proc is running..., pid: " << getpid() << endl;
        sleep(1);
    }


    // signal(SIGFPE, handler);
    // signal(SIGSEGV, handler);
    // cout << "div before" << endl;
    // sleep(3);
    // // int a = 10;
    // // a /= 0;

    // int* p = nullptr;
    // *p = 10;

    // cout << "div after" << endl;
    return 0;
}